GitHub Actions 自动化发包:NPM 包发布与 CI/CD 流程
概述
将 Nx Remote Cache 七牛云插件发布到 NPM 后,通过 GitHub Actions 实现自动化 CI/CD 流程:代码推送自动触发测试、构建与发布。本节详细讲解 GitHub Actions 工作流的配置与调试过程。
前置准备
NPM 发布配置
确保 package.json 包含完整元数据后,执行发布:
# 登录 NPM
npm login
# 检查发布内容(dry-run)
npm pack --dry-run
# 正式发布
npm publish
bash
README 文档生成
借助 AI 工具参考 nx-remote-cache-oss 的官方文档格式,快速生成中英文 README:
# nx-remote-cache-qiniu
## 说明
基于七牛云对象存储的 Nx 远端缓存实现。
## 兼容性
- Nx >= 16.x
- Node >= 18.x
## 安装
npm install nx-remote-cache-qiniu --save-dev
## 配置
在 nx.json 中配置 runner 和 options...
## 进阶配置
自定义选项说明...
markdown
GitHub Actions 工作流配置
基础 CI 工作流
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x]
steps:
- uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm build
- name: Test
run: pnpm test
yaml
自动发布工作流
# .github/workflows/publish.yml
name: Publish to NPM
on:
push:
tags:
- 'v*'
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20.x
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm build
- name: Publish
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
yaml
配置 NPM Token
在 GitHub 仓库的 Settings > Secrets and variables > Actions 中添加:
NPM_TOKEN=npm_xxxxxxxxxxxxx
text
获取 NPM Token:
# 在 NPM 官网生成 Access Token
# https://www.npmjs.com/settings/~/tokens
# 选择 Automation 类型(适用于 CI/CD)
bash
发布流程对比
| 方式 | 命令 | 触发条件 | 适用场景 |
|---|---|---|---|
| 手动发布 | npm publish | 手动执行 | 首次发布、紧急修复 |
| Tag 触发 | 推送 v* Tag | 自动执行 | 正式版本发布 |
| PR 合并 | merge 到 main | 自动执行 | 持续集成测试 |
完整发布命令
# 1. 更新版本号
npm version patch # 1.0.0 → 1.0.1
npm version minor # 1.0.0 → 1.1.0
npm version major # 1.0.0 → 2.0.0
# 2. 推送代码和 Tag
git push && git push --tags
# 3. GitHub Actions 自动执行构建和发布
bash
实践要点
- README 文档可借助 AI 工具快速生成,参考同类插件的文档结构
- NPM Token 必须存储在 GitHub Secrets 中,禁止硬编码在代码中
- 建议先在本地执行
npm pack --dry-run确认发布内容正确 - CI 工作流建议覆盖多个 Node.js 版本,确保兼容性
- 发布成功后,可在 NPM 官网和 GitHub Releases 中验证
↑